#ifndef     __HEAD_H
#define     __HEAD_H

#include<stdio.h>
#include<sys/socket.h>
#include<sys/types.h>
#include<netinet/in.h>
#include<stdlib.h>
#include<arpa/inet.h>
#include<unistd.h>
#include<time.h>
#include<string.h>
#include<stdint.h>

#include<mysql/mysql.h>
#include<stdint.h>
#include<sys/select.h>

typedef struct info{
    int option;
    int who;
    int id;
    char name[10];
    char pass[10];
}requst;


typedef struct POINT
{
    char district[10];
    char film[10];
    int  phone;
    char location[24];
}point;


typedef struct TRACE
{
    int id;
    char location[16];
    char status[6];
}trace;

typedef struct FLOW
{
    int f_id;
    int u_id;
    char origin[16];
    char end[16];
    char del[16];
    char rec[16];
    char time[20];
    char loc [16];
    char film[16];
    char sit[3];
}flow;

typedef struct USER
{
    int id;
    int dl;
}user;

typedef struct FEE
{
    int c;
    char film[10];
    char time[32];
}fee;

void test_1(char *str1, char *str2);
user enter(int sockfd);
int who_up(int sockfd_2,int id);
int function(int sockfd, int id,int f);
int use_menu(int sockfd,int id,int i);
int adm_menu(int sokcfd,int id,int i);

void search_id(int sockfd,int id);
MYSQL* mysql_op(char buf[16]);
MYSQL_RES * mysql_result(MYSQL**mysql);
void mysql_judge(int sockfd,int rnum,char* buf);
void mysql_flow_id(int sockfd,MYSQL** mysql,int id);
void data_flow_id(int sockfd,int id);



void search_point(int sockfd,int id);
void search_fee(int sockfd,int id);
void search_location(int sockfd,int id);
int modfiy_user(int sockfd,int id);

int sock_init(char *str1, char *str2);
int connect_1(int sockfd_1);

user enter(int sockfd);
int doserver(int sockc, void *buf);
int log_in(int sockc, requst *p);
int sign_in(int sockc, requst *p);

int info(requst *p);
int mysql_login(MYSQL** mysql,requst* p);

int info_2(requst p);
int mysql_sign_in(MYSQL **mysql, requst p);

void my_system();

void data_point(int sockfd,char* buf_1);
void mysql_point(int sockfd,MYSQL** mysql,char* buf_1);
void data_flow_location(int sockfd,char* buf);
void mysql_location(int sockfd,MYSQL** mysql,char* buf);
void data_fee(int sockfd,char*buf);
MYSQL_ROW mysql_fee(int sockfd,MYSQL**mysql,char*buf);
void fee_caculate(int sockfd,MYSQL_ROW row);

int mysql_modfiy(MYSQL **mysql, char a[16], int id);
int mysql_delete(MYSQL** mysql, int id);

void add_admin(int sockfd);
void search_all_info(int sockfd,int id);
void insert_info(int sockfd,int id);
void update_info(int sockfd,int id);
void delete_info(int sockfd,int id);

void adm_flow_search(int sockfd);
void flow_deliver(int sockfd ,MYSQL_ROW row);
void adm_recv_flow(int sockfd);
void mysql_adm_recv(int sockfd,MYSQL**mysql,flow* q);

void adm_uodate_flow(int sockfd);
void mysql_adm_update(int sockfd,MYSQL** mysql,flow* q);

void adm_delete_flow(int sockfd);
void mysql_adm_delete(int sockfd,MYSQL** mysql,char*buf);

#endif